/**
 * @author xhw
 */

import java.util.Scanner;

public class 汉诺塔 {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.print("请输入汉诺塔的层数：");
        int n = scanner.nextInt();

        // 调用汉诺塔移动函数
        move(n, 'A', 'B', 'C');
    }

    public static void move(int n, char from, char aux, char to) {
        if (n == 1) {
            System.out.println("将盘子从 " + from + " 移动到 " + to);
        } else {
            // 将 n-1 个盘子从起始柱子移动到辅助柱子
            move(n - 1, from, to, aux);

            // 将最大的盘子从起始柱子移动到目标柱子
            System.out.println("将盘子从 " + from + " 移动到 " + to);

            // 将 n-1 个盘子从辅助柱子移动到目标柱子
            move(n - 1, aux, from, to);
        }
    }

    //1,1,2,3,5
    int cal(int n) {
        if (n <= 2) {
            return 1;
        }

        return cal(n - 2) + cal(n - 1);
    }
}